package com.pan.admin.module.loanProduct.service;

import com.pan.admin.module.loanProduct.entity.LoanProductPlanField;
import com.pan.admin.module.loanProduct.entity.ProductFieldVo;

import com.pan.admin.module.loanProduct.entity.vo.ProductFieldAndFieldValueVo;

import java.util.List;

/**
 * 产品机构，资质字段匹配Service接口
 * 
 * @author ts
 * @date 2023-09-15
 */
 public interface LoanProductPlanFieldService {

    /**
     * 根据ID获取列表产品机构，资质字段匹配
     * 
     * @param id 产品机构，资质字段匹配主键
     * @return 产品机构，资质字段匹配
     */
     LoanProductPlanField getById(Long id);

    /**
     * 查询产品机构，资质字段匹配列表
     *
     * @param loanProductPlanField 产品机构，资质字段匹配
     * @return 产品机构，资质字段匹配集合
     */
    List<LoanProductPlanField> list(LoanProductPlanField loanProductPlanField);

    /**
     * 新增产品机构，资质字段匹配
     *
     * @param loanProductPlanField 产品机构，资质字段匹配
     * @return 结果
     */
     int insertLoanProductPlanField(List<LoanProductPlanField> loanProductPlanField);

    /**
     * 修改产品机构，资质字段匹配
     *
     * @param loanProductPlanField 产品机构，资质字段匹配
     * @return 结果
     */
     int updateLoanProductPlanField(LoanProductPlanField loanProductPlanField);

    /**
     * 删除产品机构，资质字段匹配
     *
     * @param id 产品机构，资质字段匹配主键
     * @return 结果
     */
     int deleteById(Long id);

    /**
     * 批量删除产品机构，资质字段匹配
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
     int batchDeleteById(Long[] ids);
    /**
     * 所有字段和所属字段值列表
     */
    List<ProductFieldVo> listFieldAndValue(LoanProductPlanField field);

    /**
     * 删除产品机构，资质字段匹配
     * @param productList 产品机构，资质字段匹配主键
     * @return 结果
     */
    int batchDeleteByListIds(List<ProductFieldAndFieldValueVo> productList);
}
